home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 4_0 / FLEX-TC_ / INITSCAN.C < prev    next >
Text File  |  1990-01-02  |  53KB  |  1,766 lines

  1. #define FLEX_COMPRESSED
  2. /* A lexical scanner generated by flex */
  3.  
  4. /* scanner skeleton version:
  5.  * $Header: flex.skel,v 2.0 89/06/20 15:49:46 vern Locked $
  6.  */
  7.  
  8. #include <stdio.h>
  9.  
  10. #define FLEX_SCANNER
  11.  
  12. /* amount of stuff to slurp up with each read */
  13. #ifndef YY_READ_BUF_SIZE
  14. #define YY_READ_BUF_SIZE 8192
  15. #endif
  16.  
  17. #ifndef YY_BUF_SIZE
  18. #define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of input buffer */
  19. #endif
  20.  
  21. /* returned upon end-of-file */
  22. #define YY_END_TOK 0
  23.  
  24. /* copy whatever the last rule matched to the standard output */
  25.  
  26. #define ECHO fputs( yytext, yyout )
  27.  
  28. /* gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  29.  * is returned in "result".
  30.  */
  31. #define YY_INPUT(buf,result,max_size) \
  32.     if ( (result = read( fileno(yyin), buf, max_size )) < 0 ) \
  33.         YY_FATAL_ERROR( "read() in flex scanner failed" );
  34. #define YY_NULL 0
  35. #define yyterminate() return ( YY_NULL )
  36.  
  37. /* report a fatal error */
  38. #define YY_FATAL_ERROR(msg) \
  39.     { \
  40.     fputs( msg, stderr ); \
  41.     putc( '\n', stderr ); \
  42.     exit( 1 ); \
  43.     }
  44.  
  45. /* default yywrap function - always treat EOF as an EOF */
  46. #define yywrap() 1
  47.  
  48. /* enter a start condition.  This macro really ought to take a parameter,
  49.  * but we do it the disgusting crufty way forced on us by the ()-less
  50.  * definition of BEGIN
  51.  */
  52. #define BEGIN yy_start = 1 + 2 *
  53.  
  54. /* action number for EOF rule of a given start state */
  55. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  56.  
  57. /* special action meaning "start processing a new file" */
  58. #define YY_NEW_FILE goto new_file
  59.  
  60. /* default declaration of generated scanner - a define so the user can
  61.  * easily add parameters
  62.  */
  63. #ifdef __STDC__
  64. #define YY_DECL int yylex( void )
  65. #else
  66. #define YY_DECL int yylex()
  67. #endif
  68.  
  69. /* code executed at the end of each rule */
  70. #define YY_BREAK break;
  71.  
  72. #define YY_END_OF_BUFFER_CHAR 0
  73.  
  74. /* done after the current pattern has been matched and before the
  75.  * corresponding action - sets up yytext
  76.  */
  77. #define YY_DO_BEFORE_ACTION \
  78.     yytext = yy_bp; \
  79.     yy_hold_char = *yy_cp; \
  80.     *yy_cp = '\0'; \
  81.     yy_c_buf_p = yy_cp;
  82.  
  83. /* returns the length of the matched text */
  84. #define yyleng (yy_cp - yy_bp)
  85.  
  86. #define EOB_ACT_RESTART_SCAN 0
  87. #define EOB_ACT_END_OF_FILE 1
  88. #define EOB_ACT_LAST_MATCH 2
  89.  
  90. /* return all but the first 'n' matched characters back to the input stream */
  91. #define yyless(n) \
  92.     { \
  93.     *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
  94.     yy_c_buf_p = yy_cp = yy_bp + n; \
  95.     YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  96.     }
  97.  
  98. #define unput(c) yyunput( c, yy_bp )
  99.  
  100. #define YY_USER_ACTION
  101.  
  102. FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  103. char *yytext;
  104.  
  105. #ifndef __STDC__
  106. #define const
  107. #endif
  108.  
  109. # line 1 "scan.l"
  110. #define INITIAL 0
  111. /* scan.l - scanner for flex input */
  112. /*
  113.  * Copyright (c) 1989 The Regents of the University of California.
  114.  * All rights reserved.
  115.  *
  116.  * This code is derived from software contributed to Berkeley by
  117.  * Vern Paxson.
  118.  * 
  119.  * The United States Government has rights in this work pursuant to
  120.  * contract no. DE-AC03-76SF00098 between the United States Department of
  121.  * Energy and the University of California.
  122.  *
  123.  * Redistribution and use in source and binary forms are permitted
  124.  * provided that the above copyright notice and this paragraph are
  125.  * duplicated in all such forms and that any documentation,
  126.  * advertising materials, and other materials related to such
  127.  * distribution and use acknowledge that the software was developed
  128.  * by the University of California, Berkeley.  The name of the
  129.  * University may not be used to endorse or promote products derived
  130.  * from this software without specific prior written permission.
  131.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  132.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  133.  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  134.  */
  135. # line 28 "scan.l"
  136. #include "flexdef.h"
  137. #include "parse.h"
  138.  
  139. #ifndef lint
  140. static char copyright[] =
  141.     "@(#) Copyright (c) 1989 The Regents of the University of California.\n";
  142. static char CR_continuation[] = "@(#) All rights reserved.\n";
  143.  
  144. static char rcsid[] =
  145.     "@(#) $Header: scan.l,v 2.1 89/06/20 17:24:13 vern Exp $ (LBL)";
  146. #endif
  147.  
  148. #define ACTION_ECHO fprintf( temp_action_file, "%s", yytext )
  149. #define MARK_END_OF_PROLOG fprintf( temp_action_file, "%%%% end of prolog\n" );
  150.  
  151. #undef YY_DECL
  152. #define YY_DECL \
  153.     int flexscan()
  154.  
  155. #define RETURNCHAR \
  156.     yylval = yytext[0]; \
  157.     return ( CHAR );
  158.  
  159. #define RETURNNAME \
  160.     (void) strcpy( nmstr, yytext ); \
  161.     return ( NAME );
  162.  
  163. #define PUT_BACK_STRING(str, start) \
  164.     for ( i = strlen( str ) - 1; i >= start; --i ) \
  165.         unput(str[i])
  166.  
  167. #define CHECK_REJECT(str) \
  168.     if ( all_upper( str ) ) \
  169.         reject = true;
  170.  
  171. #define CHECK_YYMORE(str) \
  172.     if ( all_lower( str ) ) \
  173.         yymore_used = true;
  174. #define SECT2 1
  175. #define SECT2PROLOG 2
  176. #define SECT3 3
  177. #define CODEBLOCK 4
  178. #define PICKUPDEF 5
  179. #define SC 6
  180. #define CARETISBOL 7
  181. #define NUM 8
  182. #define QUOTE 9
  183. #define FIRSTCCL 10
  184. #define CCL 11
  185. #define ACTION 12
  186. #define RECOVER 13
  187. #define BRACEERROR 14
  188. #define C_COMMENT 15
  189. #define C_COMMENT_2 16
  190. #define ACTION_COMMENT 17
  191. #define ACTION_STRING 18
  192. #define PERCENT_BRACE_ACTION 19
  193. #define USED_LIST 20
  194. # line 83 "scan.l"
  195. #define YY_END_OF_BUFFER 116
  196. typedef int yy_state_type;
  197. static const short int yy_accept[317] =
  198.     {   0,
  199.         0,    0,    0,    0,    0,    0,  114,  114,    0,    0,
  200.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  201.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  202.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  203.         0,    0,  116,   16,    7,   15,   13,    1,   14,   16,
  204.        16,   16,   12,   58,   50,   51,   43,   58,   57,   41,
  205.        58,   58,   58,   50,   39,   58,   57,   42,  115,   37,
  206.       114,  114,   25,   26,   25,   25,   25,   25,   28,   27,
  207.        29,   64,  115,   60,   61,   63,   65,   79,   80,   77,
  208.        76,   78,   66,   68,   67,   66,   72,   71,   72,   72,
  209.  
  210.        74,   74,   74,   75,   90,   95,   94,   96,   96,   91,
  211.        91,   91,   88,   89,  115,   30,   82,   81,   19,   21,
  212.        20,  104,  106,  105,   98,  100,   99,  107,  109,  110,
  213.       111,   86,   86,   87,   86,   86,   86,   86,   35,   32,
  214.        31,   35,   35,    7,   13,    1,   14,    0,    2,    0,
  215.         8,    4,    0,    5,    0,    3,   12,   50,   51,    0,
  216.         0,   46,    0,    0,    0,  112,  112,   45,   44,   45,
  217.         0,   50,   39,    0,    0,    0,   54,   49,    0,   37,
  218.        36,  114,  114,   25,   25,   25,   25,   25,   28,   27,
  219.        62,   63,   76,  113,  113,   69,   70,   73,   90,    0,
  220.  
  221.        93,    0,   92,   91,   91,   91,    0,   30,   19,   17,
  222.       104,  102,   98,   97,  107,  108,   86,   86,   86,   83,
  223.        86,   86,   86,   35,   32,   35,   35,    0,    8,    8,
  224.         0,    0,    0,    0,    6,    0,   47,    0,   48,    0,
  225.        55,    0,  112,   45,   45,   56,   40,    0,   47,    0,
  226.        40,    0,   54,   25,   25,   25,   22,    0,  113,   91,
  227.        91,    0,   18,    0,  103,   83,   83,   86,   86,   35,
  228.        35,    0,   11,    8,    0,    0,    0,    0,    6,    0,
  229.         0,   25,   25,   91,   91,   86,   86,   35,   35,    0,
  230.         0,    9,    0,    0,   25,   25,   91,   91,   86,   86,
  231.  
  232.        35,   35,    4,    0,    0,   23,   24,   84,   85,   84,
  233.        85,   33,   34,   10,   53,    0
  234.     } ;
  235.  
  236. static const char yy_ec[128] =
  237.     {   0,
  238.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  239.         1,    4,    1,    1,    1,    1,    1,    1,    1,    1,
  240.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  241.         1,    5,    1,    6,    7,    8,    9,    1,   10,   11,
  242.        11,   12,   11,   13,   14,   11,   15,   16,   16,   16,
  243.        16,   16,   16,   16,   16,   16,   16,    1,    1,   17,
  244.         1,   18,   11,    1,   24,   23,   25,   26,   27,   28,
  245.        23,   23,   23,   29,   23,   23,   30,   31,   32,   23,
  246.        23,   33,   34,   35,   36,   23,   23,   37,   38,   23,
  247.        19,   20,   21,   22,   23,    1,   24,   23,   25,   26,
  248.  
  249.        27,   28,   23,   23,   23,   29,   23,   23,   30,   31,
  250.        32,   23,   23,   33,   34,   35,   36,   23,   23,   37,
  251.        38,   23,   39,   40,   41,    1,    1
  252.     } ;
  253.  
  254. static const char yy_meta[42] =
  255.     {   0,
  256.         1,    2,    3,    2,    2,    4,    1,    1,    1,    5,
  257.         1,    6,    1,    7,    5,    7,    1,    1,    1,    8,
  258.         9,    1,   10,   10,   10,   10,   10,   10,   10,   10,
  259.        10,   10,   10,   10,   10,   10,   10,   10,    5,    1,
  260.        11
  261.     } ;
  262.  
  263. static const short int yy_base[375] =
  264.     {   0,
  265.         0,   41,   81,  120, 1129, 1096, 1085, 1084,  160, 1075,
  266.       100,  104,  201,    0, 1061, 1058,  114,  240,   91,  113,
  267.       131,  241,  244,  246,  281,    0, 1070, 1059,  107,  109,
  268.        87,  135,  140,  146,  242,  245,  256,  320,  340,    0,
  269.       380,  384, 1056, 1250,  152, 1250,    0,  266, 1250, 1049,
  270.       241, 1039,    0, 1250,  388, 1250, 1250,  322, 1250, 1026,
  271.      1020, 1016,  428,  468, 1250, 1020, 1009, 1250, 1015,    0,
  272.      1000, 1250,    0, 1250,    0,  975,  954,  944,    0,  326,
  273.      1250, 1250, 1250, 1250,  962,    0, 1250, 1250, 1250, 1250,
  274.       967, 1250, 1250, 1250, 1250,  962, 1250, 1250,  956,  947,
  275.  
  276.      1250,    0,  934, 1250,    0, 1250, 1250,  126,  934,    0,
  277.       918,  897, 1250, 1250,  928, 1250, 1250, 1250,    0, 1250,
  278.       915,    0, 1250,  912,    0, 1250,  905,    0, 1250, 1250,
  279.         0,    0,  330, 1250,  857,    0,  870,  827,    0,  394,
  280.      1250,  833,  816,  398,    0,  402, 1250,  847, 1250,  844,
  281.       819,  788,  110, 1250,  269, 1250,    0,  476, 1250,  543,
  282.       578, 1250,  553,   93,  230, 1250,  563,    0, 1250,  503,
  283.       405,  543, 1250,  471,  326,  406,    0, 1250,  575,    0,
  284.      1250,  574, 1250,    0,    0,  547,  545,  583,    0,  410,
  285.      1250,    0,  558, 1250,  557, 1250, 1250, 1250,    0,  391,
  286.  
  287.      1250,    0, 1250,    0,  543,  541,  567, 1250,    0,  566,
  288.         0,  565,    0, 1250,    0, 1250,    0,  422,  526,  602,
  289.         0,  537,  535,    0,  485,  535,  533,  559,    0,  558,
  290.       536,  523,  530,  553, 1250,  552, 1250,  551, 1250,  521,
  291.      1250,  472,  535,    0,    0, 1250, 1250,  407,  479,  481,
  292.      1250,  413,    0,  523,  517,    0, 1250,  540,  526,  498,
  293.       492,  520, 1250,  519, 1250,  618,    0,  494,  488,  491,
  294.       483,  511, 1250,  510,  479,  477,  483,  504, 1250,  478,
  295.       479,  480,  471,  478,  469,  476,  465,  472,  458,  441,
  296.       448, 1250,  405,  316,  360,  367,  298,  252,  238,  225,
  297.  
  298.        83,   68, 1250,   65,   70,    0,    0,    0,    0,    0,
  299.         0,    0,    0, 1250, 1250, 1250,  656,  667,  678,  689,
  300.       700,  711,  722,  733,  744,  755,  766,  777,  788,  799,
  301.       810,  815,  825,  836,  841,  851,  862,  873,  884,  895,
  302.       906,  917,  922,  932,  937,  947,  958,  969,  980,  989,
  303.       994, 1004, 1015, 1026, 1037, 1048, 1059, 1070, 1075, 1085,
  304.      1096, 1107, 1118, 1129, 1139, 1150, 1161, 1172, 1183, 1194,
  305.      1205, 1216, 1227, 1238
  306.     } ;
  307.  
  308. static const short int yy_def[375] =
  309.     {   0,
  310.       316,  316,  317,  317,  318,  318,  319,  319,  316,    9,
  311.       320,  320,  316,   13,  321,  321,  322,  322,  323,  323,
  312.       324,  324,  325,  325,  316,   25,  326,  326,  321,  321,
  313.       327,  327,  328,  328,  329,  329,  330,  330,  316,   39,
  314.       331,  331,  316,  316,  316,  316,  332,  316,  316,  333,
  315.       334,  316,  335,  316,  316,  316,  316,  316,  316,  316,
  316.       336,  337,  316,  338,  316,  316,  316,  316,  339,  340,
  317.       341,  316,  342,  316,  343,  343,  343,  342,  344,  316,
  318.       316,  316,  316,  316,  316,  345,  316,  316,  316,  316,
  319.       316,  316,  316,  316,  316,  337,  316,  316,  346,  347,
  320.  
  321.       316,  348,  337,  316,  349,  316,  316,  350,  316,  351,
  322.       351,  351,  316,  316,  352,  316,  316,  316,  353,  316,
  323.       316,  354,  316,  316,  355,  316,  316,  356,  316,  316,
  324.       357,  358,  358,  316,  358,  359,  359,  359,  360,  316,
  325.       316,  360,  360,  316,  332,  316,  316,  333,  316,  316,
  326.       361,  316,  316,  316,  362,  316,  335,  316,  316,  316,
  327.       363,  316,  316,  336,  336,  316,  316,  364,  316,  364,
  328.       338,  338,  316,  338,  338,  365,  366,  316,  339,  340,
  329.       316,  341,  316,  342,  343,  343,  343,  316,  344,  316,
  330.       316,  345,  316,  316,  316,  316,  316,  316,  349,  350,
  331.  
  332.       316,  350,  316,  351,  351,  351,  352,  316,  353,  367,
  333.       354,  368,  355,  316,  356,  316,  358,  358,  358,  369,
  334.       359,  359,  359,  360,  316,  360,  360,  370,  361,  371,
  335.       316,  316,  316,  362,  316,  372,  316,  363,  316,  316,
  336.       316,  336,  316,  364,  170,  316,  316,  338,  338,  365,
  337.       316,  365,  366,  343,  343,  188,  316,  373,  316,  351,
  338.       351,  367,  316,  368,  316,  369,  374,  359,  359,  360,
  339.       360,  370,  316,  371,  316,  316,  316,  372,  316,  316,
  340.       336,  343,  343,  351,  351,  359,  359,  360,  360,  316,
  341.       316,  316,  316,  336,  343,  343,  351,  351,  359,  359,
  342.  
  343.       360,  360,  316,  316,  316,  343,  343,  351,  351,  359,
  344.       359,  360,  360,  316,  316,    0,  316,  316,  316,  316,
  345.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  346.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  347.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  348.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  349.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  350.       316,  316,  316,  316
  351.     } ;
  352.  
  353. static const short int yy_nxt[1292] =
  354.     {   0,
  355.        44,   45,   46,   45,   45,   44,   44,   44,   44,   44,
  356.        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
  357.        44,   44,   47,   47,   47,   47,   47,   47,   47,   47,
  358.        47,   47,   47,   47,   47,   47,   47,   47,   44,   44,
  359.        44,   44,   48,   49,   48,   48,   44,   50,   44,   51,
  360.        44,   44,   44,   44,   44,   52,   44,   44,   44,   44,
  361.        44,   44,   44,   53,   53,   53,   53,   53,   53,   53,
  362.        53,   53,   53,   53,   53,   53,   53,   53,   53,   44,
  363.        44,   44,   55,   56,   55,   55,   57,  315,   58,  120,
  364.       314,   59,   59,   94,  313,   59,   95,   60,  121,   61,
  365.  
  366.        62,   80,   81,   80,   80,   80,   81,   80,   80,  117,
  367.        96,  117,  165,  241,  228,   94,   89,  312,   95,   63,
  368.        59,   64,   65,   64,   64,   57,   90,   58,   66,   91,
  369.        59,   59,   96,   83,   67,  201,   60,  120,   61,   62,
  370.       232,   68,  123,  233,   98,  202,  121,  118,  123,  118,
  371.        99,  124,  100,  144,   92,  144,  144,  124,   63,   59,
  372.        73,   73,   74,   73,   73,   73,   73,   73,   73,   73,
  373.        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
  374.        73,   73,   75,   75,   75,   75,   75,   75,   75,   75,
  375.        75,   75,   76,   75,   75,   75,   75,   77,   73,   73,
  376.  
  377.        73,   82,   82,   83,   82,   82,   82,   82,   82,   82,
  378.        82,   82,   82,   84,   82,   82,   82,   82,   85,   82,
  379.        82,   82,   82,   86,   86,   86,   86,   86,   86,   86,
  380.        86,   86,   86,   86,   86,   86,   86,   86,   86,   82,
  381.        82,   82,   89,   83,  126,  242,   83,  126,   83,  151,
  382.       164,  311,   90,  127,   98,   91,  127,  102,  129,  102,
  383.        99,  130,  100,  103,  104,  103,  104,  146,  147,  146,
  384.       146,  235,  310,  236,  152,  131,  153,  154,  309,  155,
  385.        92,  105,  105,  106,  105,  105,  107,  105,  105,  105,
  386.       108,  105,  105,  105,  105,  109,  105,  105,  105,  105,
  387.  
  388.       105,  105,  105,  110,  110,  110,  110,  110,  110,  110,
  389.       110,  110,  110,  111,  110,  110,  110,  110,  112,  113,
  390.       105,  114,  129,  162,  162,  130,  162,  190,  247,  190,
  391.       190,  218,  308,  218,  218,  165,  241,  178,  219,  131,
  392.       132,  133,  134,  133,  133,  132,  132,  132,  135,  132,
  393.       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
  394.       132,  132,  136,  136,  136,  136,  136,  136,  136,  136,
  395.       136,  136,  137,  136,  136,  136,  136,  138,  132,  132,
  396.       132,  140,  141,  140,  140,  140,  141,  140,  140,  158,
  397.       159,  158,  158,  307,  306,  225,  160,  225,  225,  144,
  398.  
  399.       201,  144,  144,  146,  147,  146,  146,  247,  251,  247,
  400.       202,  190,  142,  190,  190,  251,  142,  143,  316,  248,
  401.       252,  143,  305,  218,  238,  218,  218,  161,  168,  168,
  402.       219,  168,  168,  168,  168,  168,  168,  168,  168,  168,
  403.       168,  168,  168,  169,  168,  168,  168,  168,  168,  168,
  404.       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
  405.       170,  170,  170,  170,  170,  170,  168,  168,  168,  172,
  406.       173,  172,  172,  247,  304,  303,  174,  158,  159,  158,
  407.       158,  247,  175,  251,  160,  248,  225,  281,  225,  225,
  408.       302,  165,  241,  248,  294,  252,  301,  300,  165,  241,
  409.  
  410.       299,  298,  297,  296,  295,  293,  279,  176,  292,  249,
  411.       291,  290,  273,  273,  289,  161,  245,  288,  245,  287,
  412.       286,  265,  263,  285,  284,  245,  245,  245,  245,  245,
  413.       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
  414.       245,  194,  257,  246,  172,  173,  172,  172,  283,  282,
  415.       166,  174,  280,  239,  279,  235,  277,  175,  276,  275,
  416.       273,  273,  271,  270,  269,  268,  220,  265,  263,  208,
  417.       261,  260,  259,  193,  255,  254,  183,  180,  243,  240,
  418.       239,  237,  176,  256,  256,  257,  256,  256,  256,  256,
  419.       256,  256,  256,  256,  256,  256,  256,  256,  256,  256,
  420.  
  421.       256,  256,  256,  256,  256,  258,  258,  258,  258,  258,
  422.       258,  258,  258,  258,  258,  258,  258,  258,  258,  258,
  423.       258,  256,  256,  256,  267,  267,  267,  267,  267,  267,
  424.       267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
  425.       267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
  426.       267,  267,  267,  267,  267,  267,   54,   54,   54,   54,
  427.        54,   54,   54,   54,   54,   54,   54,   69,   69,   69,
  428.        69,   69,   69,   69,   69,   69,   69,   69,   71,   71,
  429.        71,   71,   71,   71,   71,   71,   71,   71,   71,   79,
  430.        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
  431.  
  432.        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
  433.        83,   88,   88,   88,   88,   88,   88,   88,   88,   88,
  434.        88,   88,   93,   93,   93,   93,   93,   93,   93,   93,
  435.        93,   93,   93,   97,   97,   97,   97,   97,   97,   97,
  436.        97,   97,   97,   97,  101,  101,  101,  101,  101,  101,
  437.       101,  101,  101,  101,  101,  115,  115,  115,  115,  115,
  438.       115,  115,  115,  115,  115,  115,  119,  119,  119,  119,
  439.       119,  119,  119,  119,  119,  119,  119,  122,  122,  122,
  440.       122,  122,  122,  122,  122,  122,  122,  122,  125,  125,
  441.       125,  125,  125,  125,  125,  125,  125,  125,  125,  128,
  442.  
  443.       128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
  444.       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
  445.       139,  145,  231,  230,  145,  148,  148,  148,  148,  148,
  446.       148,  148,  148,  148,  148,  148,  150,  150,  150,  150,
  447.       150,  150,  150,  150,  150,  150,  150,  157,  228,  149,
  448.       157,  164,  164,  227,  164,  164,  164,  164,  164,  226,
  449.       164,  164,  166,  166,  223,  166,  166,  166,  166,  166,
  450.       166,  166,  166,  171,  171,  171,  171,  171,  171,  171,
  451.       171,  171,  171,  171,  179,  179,  179,  179,  179,  179,
  452.       179,  179,  179,  179,  179,  181,  222,  220,  181,  181,
  453.  
  454.       181,  181,  181,  181,  181,  181,  182,  182,  182,  182,
  455.       182,  182,  182,  182,  182,  182,  182,  184,  184,  214,
  456.       184,  184,  184,  184,  184,  184,  212,  184,  185,  210,
  457.       208,  185,  189,  189,  206,  189,  189,  189,  189,  189,
  458.       189,  189,  189,  192,  205,  203,  192,  194,  194,  167,
  459.       194,  194,  194,  194,  194,  194,  194,  194,  196,  196,
  460.       197,  196,  196,  196,  196,  196,  196,  196,  196,  198,
  461.       198,  195,  198,  198,  198,  198,  198,  167,  198,  198,
  462.       199,  199,  193,  191,  188,  199,  199,  199,  199,  200,
  463.       200,  187,  200,  200,  200,  200,  200,  200,  200,  200,
  464.  
  465.       204,  186,  183,  204,  207,  207,  207,  207,  207,  207,
  466.       207,  207,  207,  207,  207,  209,  209,  180,  209,  209,
  467.       178,  209,  209,  209,  209,  209,  211,  211,  177,  211,
  468.       211,  167,  211,  211,  211,  211,  211,  213,  213,  165,
  469.       213,  213,  163,  213,  213,  213,  213,  213,  215,  215,
  470.       156,  149,  215,  215,  215,  316,  215,  215,  215,  216,
  471.       216,  116,  216,  216,  216,  216,  216,  216,  216,  216,
  472.       217,  217,  116,  217,  217,  217,  217,  217,  217,   87,
  473.       217,  221,   87,   78,  221,  224,   72,   72,  224,  224,
  474.       224,  224,  224,  224,  224,  224,  229,  229,   70,  229,
  475.  
  476.       229,  229,  229,  229,  229,  229,  229,  234,  234,  234,
  477.       234,  234,  234,  234,  234,  234,  234,  234,  238,  238,
  478.       238,  238,  238,  238,  238,  238,  238,  238,  238,  244,
  479.       244,   70,  244,  244,  244,  244,  244,  244,  244,  250,
  480.       250,  250,  250,  250,  250,  250,  250,  250,  250,  250,
  481.       253,  253,  316,  253,  253,  253,  253,  253,  253,  253,
  482.       253,  262,  262,  262,  262,  262,  262,  262,  262,  262,
  483.       262,  262,  264,  264,  264,  264,  264,  264,  264,  264,
  484.       264,  264,  264,  266,  266,  316,  266,  266,  266,  266,
  485.       266,  266,  266,  266,  272,  272,  272,  272,  272,  272,
  486.  
  487.       272,  272,  272,  272,  272,  274,  274,  274,  274,  274,
  488.       274,  274,  274,  274,  274,  274,  278,  278,  278,  278,
  489.       278,  278,  278,  278,  278,  278,  278,  258,  258,  258,
  490.       258,  258,  258,  258,  258,  258,  258,  258,  267,  267,
  491.       316,  267,  267,  267,  267,  267,  267,  267,  267,   43,
  492.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  493.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  494.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  495.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  496.       316
  497.  
  498.     } ;
  499.  
  500. static const short int yy_chk[1292] =
  501.     {   0,
  502.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  503.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  504.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  505.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  506.         1,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  507.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  508.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  509.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  510.         2,    2,    3,    3,    3,    3,    3,  305,    3,   31,
  511.       304,    3,    3,   19,  302,    3,   19,    3,   31,    3,
  512.  
  513.         3,   11,   11,   11,   11,   12,   12,   12,   12,   29,
  514.        19,   30,  164,  164,  153,   20,   17,  301,   20,    3,
  515.         3,    4,    4,    4,    4,    4,   17,    4,    4,   17,
  516.         4,    4,   20,   21,    4,  108,    4,   32,    4,    4,
  517.       153,    4,   33,  153,   21,  108,   32,   29,   34,   30,
  518.        21,   33,   21,   45,   17,   45,   45,   34,    4,    4,
  519.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  520.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  521.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  522.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  523.  
  524.         9,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  525.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  526.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  527.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  528.        13,   13,   18,   22,   35,  165,   23,   36,   24,   51,
  529.       165,  300,   18,   35,   22,   18,   36,   23,   37,   24,
  530.        22,   37,   22,   23,   23,   24,   24,   48,   48,   48,
  531.        48,  155,  299,  155,   51,   37,   51,   51,  298,   51,
  532.        18,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  533.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  534.  
  535.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  536.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  537.        25,   25,   38,   58,   58,   38,   58,   80,  175,   80,
  538.        80,  133,  297,  133,  133,  294,  294,  175,  133,   38,
  539.        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
  540.        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
  541.        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
  542.        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
  543.        39,   41,   41,   41,   41,   42,   42,   42,   42,   55,
  544.        55,   55,   55,  296,  295,  140,   55,  140,  140,  144,
  545.  
  546.       200,  144,  144,  146,  146,  146,  146,  171,  176,  248,
  547.       200,  190,   41,  190,  190,  252,   42,   41,  248,  171,
  548.       176,   42,  293,  218,  252,  218,  218,   55,   63,   63,
  549.       218,   63,   63,   63,   63,   63,   63,   63,   63,   63,
  550.        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
  551.        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
  552.        63,   63,   63,   63,   63,   63,   63,   63,   63,   64,
  553.        64,   64,   64,  174,  291,  290,   64,  158,  158,  158,
  554.       158,  249,   64,  250,  158,  174,  225,  242,  225,  225,
  555.       289,  242,  242,  249,  281,  250,  288,  287,  281,  281,
  556.  
  557.       286,  285,  284,  283,  282,  280,  278,   64,  277,  174,
  558.       276,  275,  274,  272,  271,  158,  170,  270,  170,  269,
  559.       268,  264,  262,  261,  260,  170,  170,  170,  170,  170,
  560.       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
  561.       170,  259,  258,  170,  172,  172,  172,  172,  255,  254,
  562.       243,  172,  240,  238,  236,  234,  233,  172,  232,  231,
  563.       230,  228,  227,  226,  223,  222,  219,  212,  210,  207,
  564.       206,  205,  195,  193,  187,  186,  182,  179,  167,  163,
  565.       161,  160,  172,  188,  188,  188,  188,  188,  188,  188,
  566.       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
  567.  
  568.       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
  569.       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
  570.       188,  188,  188,  188,  220,  220,  220,  220,  220,  220,
  571.       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
  572.       266,  266,  266,  266,  266,  266,  266,  266,  266,  266,
  573.       266,  266,  266,  266,  266,  266,  317,  317,  317,  317,
  574.       317,  317,  317,  317,  317,  317,  317,  318,  318,  318,
  575.       318,  318,  318,  318,  318,  318,  318,  318,  319,  319,
  576.       319,  319,  319,  319,  319,  319,  319,  319,  319,  320,
  577.       320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
  578.  
  579.       321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
  580.       321,  322,  322,  322,  322,  322,  322,  322,  322,  322,
  581.       322,  322,  323,  323,  323,  323,  323,  323,  323,  323,
  582.       323,  323,  323,  324,  324,  324,  324,  324,  324,  324,
  583.       324,  324,  324,  324,  325,  325,  325,  325,  325,  325,
  584.       325,  325,  325,  325,  325,  326,  326,  326,  326,  326,
  585.       326,  326,  326,  326,  326,  326,  327,  327,  327,  327,
  586.       327,  327,  327,  327,  327,  327,  327,  328,  328,  328,
  587.       328,  328,  328,  328,  328,  328,  328,  328,  329,  329,
  588.       329,  329,  329,  329,  329,  329,  329,  329,  329,  330,
  589.  
  590.       330,  330,  330,  330,  330,  330,  330,  330,  330,  330,
  591.       331,  331,  331,  331,  331,  331,  331,  331,  331,  331,
  592.       331,  332,  152,  151,  332,  333,  333,  333,  333,  333,
  593.       333,  333,  333,  333,  333,  333,  334,  334,  334,  334,
  594.       334,  334,  334,  334,  334,  334,  334,  335,  150,  148,
  595.       335,  336,  336,  143,  336,  336,  336,  336,  336,  142,
  596.       336,  336,  337,  337,  138,  337,  337,  337,  337,  337,
  597.       337,  337,  337,  338,  338,  338,  338,  338,  338,  338,
  598.       338,  338,  338,  338,  339,  339,  339,  339,  339,  339,
  599.       339,  339,  339,  339,  339,  340,  137,  135,  340,  340,
  600.  
  601.       340,  340,  340,  340,  340,  340,  341,  341,  341,  341,
  602.       341,  341,  341,  341,  341,  341,  341,  342,  342,  127,
  603.       342,  342,  342,  342,  342,  342,  124,  342,  343,  121,
  604.       115,  343,  344,  344,  112,  344,  344,  344,  344,  344,
  605.       344,  344,  344,  345,  111,  109,  345,  346,  346,  103,
  606.       346,  346,  346,  346,  346,  346,  346,  346,  347,  347,
  607.       100,  347,  347,  347,  347,  347,  347,  347,  347,  348,
  608.       348,   99,  348,  348,  348,  348,  348,   96,  348,  348,
  609.       349,  349,   91,   85,   78,  349,  349,  349,  349,  350,
  610.       350,   77,  350,  350,  350,  350,  350,  350,  350,  350,
  611.  
  612.       351,   76,   71,  351,  352,  352,  352,  352,  352,  352,
  613.       352,  352,  352,  352,  352,  353,  353,   69,  353,  353,
  614.        67,  353,  353,  353,  353,  353,  354,  354,   66,  354,
  615.       354,   62,  354,  354,  354,  354,  354,  355,  355,   61,
  616.       355,  355,   60,  355,  355,  355,  355,  355,  356,  356,
  617.        52,   50,  356,  356,  356,   43,  356,  356,  356,  357,
  618.       357,   28,  357,  357,  357,  357,  357,  357,  357,  357,
  619.       358,  358,   27,  358,  358,  358,  358,  358,  358,   16,
  620.       358,  359,   15,   10,  359,  360,    8,    7,  360,  360,
  621.       360,  360,  360,  360,  360,  360,  361,  361,    6,  361,
  622.  
  623.       361,  361,  361,  361,  361,  361,  361,  362,  362,  362,
  624.       362,  362,  362,  362,  362,  362,  362,  362,  363,  363,
  625.       363,  363,  363,  363,  363,  363,  363,  363,  363,  364,
  626.       364,    5,  364,  364,  364,  364,  364,  364,  364,  365,
  627.       365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
  628.       366,  366,    0,  366,  366,  366,  366,  366,  366,  366,
  629.       366,  367,  367,  367,  367,  367,  367,  367,  367,  367,
  630.       367,  367,  368,  368,  368,  368,  368,  368,  368,  368,
  631.       368,  368,  368,  369,  369,    0,  369,  369,  369,  369,
  632.       369,  369,  369,  369,  370,  370,  370,  370,  370,  370,
  633.  
  634.       370,  370,  370,  370,  370,  371,  371,  371,  371,  371,
  635.       371,  371,  371,  371,  371,  371,  372,  372,  372,  372,
  636.       372,  372,  372,  372,  372,  372,  372,  373,  373,  373,
  637.       373,  373,  373,  373,  373,  373,  373,  373,  374,  374,
  638.         0,  374,  374,  374,  374,  374,  374,  374,  374,  316,
  639.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  640.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  641.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  642.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  643.       316
  644.  
  645.     } ;
  646.  
  647. /* the intent behind this definition is that it'll catch
  648.  * any uses of REJECT which flex missed
  649.  */
  650. #define REJECT reject_used_but_not_detected
  651. #define yymore() yymore_used_but_not_detected
  652.  
  653. /* these variables are all declared out here so that section 3 code can
  654.  * manipulate them
  655.  */
  656. static char *yy_c_buf_p;    /* points to current character in buffer */
  657. static int yy_init = 1;        /* whether we need to initialize */
  658. static int yy_start = 0;    /* start state number */
  659.  
  660. /* true when we've seen an EOF for the current input file */
  661. static int yy_eof_has_been_seen;
  662.  
  663. static int yy_n_chars;        /* number of characters read into yy_ch_buf */
  664.  
  665. /* yy_ch_buf has to be 2 characters longer than YY_BUF_SIZE because we need
  666.  * to put in 2 end-of-buffer characters (this is explained where it is
  667.  * done) at the end of yy_ch_buf
  668.  */
  669. static char yy_ch_buf[YY_BUF_SIZE + 2];
  670.  
  671. /* yy_hold_char holds the character lost when yytext is formed */
  672. static char yy_hold_char;
  673.  
  674. static yy_state_type yy_last_accepting_state;
  675. static char *yy_last_accepting_cpos;
  676.  
  677. #ifdef __STDC__
  678. static yy_state_type yy_get_previous_state( void );
  679. static int yy_get_next_buffer( void );
  680. static void yyunput( int c, char *buf_ptr );
  681. static int input( void );
  682. static void yyrestart( FILE *input_file );
  683. #else
  684. static yy_state_type yy_get_previous_state();
  685. static int yy_get_next_buffer();
  686. static void yyunput();
  687. static int input();
  688. static void yyrestart();
  689. #endif
  690.  
  691. YY_DECL
  692.     {
  693.     register yy_state_type yy_current_state;
  694.     register char *yy_cp, *yy_bp;
  695.     register int yy_act;
  696.  
  697.  
  698.     static int bracelevel, didadef;
  699.     int i, indented_code, checking_used;
  700.     char nmdef[MAXLINE], myesc();
  701.  
  702.  
  703.     if ( yy_init )
  704.     {
  705.     if ( ! yy_start )
  706.         yy_start = 1;    /* first start state */
  707.  
  708.     if ( ! yyin )
  709.         yyin = stdin;
  710.  
  711.     if ( ! yyout )
  712.         yyout = stdout;
  713.  
  714. new_file:
  715.     /* this is where we enter upon encountering an end-of-file and
  716.      * yywrap() indicating that we should continue processing
  717.      */
  718.  
  719.     /* we put in the '\n' and start reading from [1] so that an
  720.      * initial match-at-newline will be true.
  721.      */
  722.  
  723.     yy_ch_buf[0] = '\n';
  724.     yy_n_chars = 1;
  725.  
  726.     /* we always need two end-of-buffer characters.  The first causes
  727.      * a transition to the end-of-buffer state.  The second causes
  728.      * a jam in that state.
  729.      */
  730.     yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  731.     yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  732.  
  733.     yy_eof_has_been_seen = 0;
  734.  
  735.     yytext = yy_c_buf_p = &yy_ch_buf[1];
  736.     yy_hold_char = *yy_c_buf_p;
  737.     yy_init = 0;
  738.     }
  739.  
  740.     while ( 1 )        /* loops until end-of-file is reached */
  741.     {
  742.     yy_cp = yy_c_buf_p;
  743.  
  744.     /* support of yytext */
  745.     *yy_cp = yy_hold_char;
  746.  
  747.     /* yy_bp points to the position in yy_ch_buf of the start of the
  748.      * current run.
  749.      */
  750.     yy_bp = yy_cp;
  751.  
  752.     yy_current_state = yy_start;
  753.     if ( yy_bp[-1] == '\n' )
  754.         ++yy_current_state;
  755.     do
  756.         {
  757.         register char yy_c = yy_ec[*yy_cp];
  758.         if ( yy_accept[yy_current_state] )
  759.         {
  760.         yy_last_accepting_state = yy_current_state;
  761.         yy_last_accepting_cpos = yy_cp;
  762.         }
  763.         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  764.         {
  765.         yy_current_state = yy_def[yy_current_state];
  766.         if ( yy_current_state >= 317 )
  767.             yy_c = yy_meta[yy_c];
  768.         }
  769.         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  770.         ++yy_cp;
  771.         }
  772.     while ( yy_current_state != 316 );
  773.     yy_cp = yy_last_accepting_cpos;
  774.     yy_current_state = yy_last_accepting_state;
  775.  
  776.     /* bogus while loop to let YY_BACK_TRACK, EOB_ACT_LAST_MATCH,
  777.      * and EOF actions branch here without introducing an optimizer-
  778.      * daunting goto
  779.      */
  780.     while ( 1 )
  781.         {
  782.         yy_act = yy_accept[yy_current_state];
  783.  
  784.         YY_DO_BEFORE_ACTION;
  785.         YY_USER_ACTION;
  786.  
  787. #ifdef FLEX_DEBUG
  788.         fprintf( stderr, "--accepting rule #%d (\"%s\")\n",
  789.              yy_act, yytext );
  790. #endif
  791.  
  792. do_action:    /* this label is used only to access EOF actions */
  793.         switch ( yy_act )
  794.         {
  795.         case 0: /* must backtrack */
  796.         /* undo the effects of YY_DO_BEFORE_ACTION */
  797.         *yy_cp = yy_hold_char;
  798.         yy_cp = yy_last_accepting_cpos;
  799.         yy_current_state = yy_last_accepting_state;
  800.         continue; /* go to "YY_DO_BEFORE_ACTION" */
  801.  
  802. case 1:
  803. # line 88 "scan.l"
  804. indented_code = true; BEGIN(CODEBLOCK);
  805.     YY_BREAK
  806. case 2:
  807. # line 89 "scan.l"
  808. ++linenum; ECHO; /* treat as a comment */
  809.     YY_BREAK
  810. case 3:
  811. # line 90 "scan.l"
  812. ECHO; BEGIN(C_COMMENT);
  813.     YY_BREAK
  814. case 4:
  815. # line 91 "scan.l"
  816. return ( SCDECL );
  817.     YY_BREAK
  818. case 5:
  819. # line 92 "scan.l"
  820. return ( XSCDECL );
  821.     YY_BREAK
  822. case 6:
  823. # line 93 "scan.l"
  824. {
  825.             ++linenum;
  826.             line_directive_out( stdout );
  827.             indented_code = false;
  828.             BEGIN(CODEBLOCK);
  829.             }
  830.     YY_BREAK
  831. case 7:
  832. # line 100 "scan.l"
  833. return ( WHITESPACE );
  834.     YY_BREAK
  835. case 8:
  836. # line 102 "scan.l"
  837. {
  838.             sectnum = 2;
  839.             line_directive_out( stdout );
  840.             BEGIN(SECT2PROLOG);
  841.             return ( SECTEND );
  842.             }
  843.     YY_BREAK
  844. case 9:
  845. # line 109 "scan.l"
  846. checking_used = REALLY_USED; BEGIN(USED_LIST);
  847.     YY_BREAK
  848. case 10:
  849. # line 110 "scan.l"
  850. checking_used = REALLY_NOT_USED; BEGIN(USED_LIST);
  851.     YY_BREAK
  852. case 11:
  853. # line 113 "scan.l"
  854. {
  855.             fprintf( stderr,
  856.                  "old-style lex command at line %d ignored:\n\t%s",
  857.                  linenum, yytext );
  858.             ++linenum;
  859.             }
  860.     YY_BREAK
  861. case 12:
  862. # line 120 "scan.l"
  863. {
  864.             (void) strcpy( nmstr, yytext );
  865.             didadef = false;
  866.             BEGIN(PICKUPDEF);
  867.             }
  868.     YY_BREAK
  869. case 13:
  870. # line 126 "scan.l"
  871. RETURNNAME;
  872.     YY_BREAK
  873. case 14:
  874. # line 127 "scan.l"
  875. ++linenum; /* allows blank lines in section 1 */
  876.     YY_BREAK
  877. case 15:
  878. # line 128 "scan.l"
  879. ++linenum; return ( '\n' );
  880.     YY_BREAK
  881. case 16:
  882. # line 129 "scan.l"
  883. synerr( "illegal character" ); BEGIN(RECOVER);
  884.     YY_BREAK
  885. case 17:
  886. # line 132 "scan.l"
  887. ECHO; BEGIN(0);
  888.     YY_BREAK
  889. case 18:
  890. # line 133 "scan.l"
  891. ++linenum; ECHO; BEGIN(0);
  892.     YY_BREAK
  893. case 19:
  894. # line 134 "scan.l"
  895. ECHO;
  896.     YY_BREAK
  897. case 20:
  898. # line 135 "scan.l"
  899. ECHO;
  900.     YY_BREAK
  901. case 21:
  902. # line 136 "scan.l"
  903. ++linenum; ECHO;
  904.     YY_BREAK
  905. case 22:
  906. # line 139 "scan.l"
  907. ++linenum; BEGIN(0);
  908.     YY_BREAK
  909. case 23:
  910. # line 140 "scan.l"
  911. ECHO; CHECK_REJECT(yytext);
  912.     YY_BREAK
  913. case 24:
  914. # line 141 "scan.l"
  915. ECHO; CHECK_YYMORE(yytext);
  916.     YY_BREAK
  917. case 25:
  918. # line 142 "scan.l"
  919. ECHO;
  920.     YY_BREAK
  921. case 26:
  922. # line 143 "scan.l"
  923. {
  924.             ++linenum;
  925.             ECHO;
  926.             if ( indented_code )
  927.                 BEGIN(0);
  928.             }
  929.     YY_BREAK
  930. case 27:
  931. # line 151 "scan.l"
  932. /* separates name and definition */
  933.     YY_BREAK
  934. case 28:
  935. # line 153 "scan.l"
  936. {
  937.             (void) strcpy( nmdef, yytext );
  938.  
  939.             for ( i = strlen( nmdef ) - 1;
  940.                   i >= 0 &&
  941.                   nmdef[i] == ' ' || nmdef[i] == '\t';
  942.                   --i )
  943.                 ;
  944.  
  945.             nmdef[i + 1] = '\0';
  946.  
  947.                         ndinstal( nmstr, nmdef );
  948.             didadef = true;
  949.             }
  950.     YY_BREAK
  951. case 29:
  952. # line 168 "scan.l"
  953. {
  954.             if ( ! didadef )
  955.                 synerr( "incomplete name definition" );
  956.             BEGIN(0);
  957.             ++linenum;
  958.             }
  959.     YY_BREAK
  960. case 30:
  961. # line 175 "scan.l"
  962. ++linenum; BEGIN(0); RETURNNAME;
  963.     YY_BREAK
  964. case 31:
  965. # line 178 "scan.l"
  966. ++linenum; BEGIN(0);
  967.     YY_BREAK
  968. case 32:
  969. # line 179 "scan.l"
  970.  
  971.     YY_BREAK
  972. case 33:
  973. # line 180 "scan.l"
  974. {
  975.             if ( all_upper( yytext ) )
  976.                 reject_really_used = checking_used;
  977.             else
  978.                 synerr( "unrecognized %used/%unused construct" );
  979.             }
  980.     YY_BREAK
  981. case 34:
  982. # line 186 "scan.l"
  983. {
  984.             if ( all_lower( yytext ) )
  985.                 yymore_really_used = checking_used;
  986.             else
  987.                 synerr( "unrecognized %used/%unused construct" );
  988.             }
  989.     YY_BREAK
  990. case 35:
  991. # line 192 "scan.l"
  992. synerr( "unrecognized %used/%unused construct" );
  993.     YY_BREAK
  994. case 36:
  995. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  996. yy_c_buf_p = yy_cp -= 1;
  997. YY_DO_BEFORE_ACTION; /* set up yytext again */
  998. # line 195 "scan.l"
  999. {
  1000.             ++linenum;
  1001.             ACTION_ECHO;
  1002.             MARK_END_OF_PROLOG;
  1003.             BEGIN(SECT2);
  1004.             }
  1005.     YY_BREAK
  1006. case 37:
  1007. # line 202 "scan.l"
  1008. ++linenum; ACTION_ECHO;
  1009.     YY_BREAK
  1010. case YY_STATE_EOF(SECT2PROLOG):
  1011. # line 204 "scan.l"
  1012. MARK_END_OF_PROLOG; yyterminate();
  1013.     YY_BREAK
  1014. case 39:
  1015. # line 206 "scan.l"
  1016. ++linenum; /* allow blank lines in section 2 */
  1017.     YY_BREAK
  1018.     /* this horrible mess of a rule matches indented lines which
  1019.      * do not contain "/*".  We need to make the distinction because
  1020.      * otherwise this rule will be taken instead of the rule which
  1021.      * matches the beginning of comments like this one
  1022.      */
  1023. case 40:
  1024. # line 213 "scan.l"
  1025. {
  1026.             synerr( "indented code found outside of action" );
  1027.             ++linenum;
  1028.             }
  1029.     YY_BREAK
  1030. case 41:
  1031. # line 218 "scan.l"
  1032. BEGIN(SC); return ( '<' );
  1033.     YY_BREAK
  1034. case 42:
  1035. # line 219 "scan.l"
  1036. return ( '^' );
  1037.     YY_BREAK
  1038. case 43:
  1039. # line 220 "scan.l"
  1040. BEGIN(QUOTE); return ( '"' );
  1041.     YY_BREAK
  1042. case 44:
  1043. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1044. yy_c_buf_p = yy_cp = yy_bp + 1;
  1045. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1046. # line 221 "scan.l"
  1047. BEGIN(NUM); return ( '{' );
  1048.     YY_BREAK
  1049. case 45:
  1050. # line 222 "scan.l"
  1051. BEGIN(BRACEERROR);
  1052.     YY_BREAK
  1053. case 46:
  1054. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1055. yy_c_buf_p = yy_cp = yy_bp + 1;
  1056. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1057. # line 223 "scan.l"
  1058. return ( '$' );
  1059.     YY_BREAK
  1060. case 47:
  1061. # line 225 "scan.l"
  1062. {
  1063.             bracelevel = 1;
  1064.             BEGIN(PERCENT_BRACE_ACTION);
  1065.             return ( '\n' );
  1066.             }
  1067.     YY_BREAK
  1068. case 48:
  1069. # line 230 "scan.l"
  1070. continued_action = true; ++linenum; return ( '\n' );
  1071.     YY_BREAK
  1072. case 49:
  1073. # line 232 "scan.l"
  1074. ACTION_ECHO; BEGIN(C_COMMENT_2);
  1075.     YY_BREAK
  1076. case 50:
  1077. # line 234 "scan.l"
  1078. {
  1079.             /* this rule is separate from the one below because
  1080.              * otherwise we get variable trailing context, so
  1081.              * we can't build the scanner using -{f,F}
  1082.              */
  1083.             bracelevel = 0;
  1084.             continued_action = false;
  1085.             BEGIN(ACTION);
  1086.             return ( '\n' );
  1087.             }
  1088.     YY_BREAK
  1089. case 51:
  1090. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1091. yy_c_buf_p = yy_cp -= 1;
  1092. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1093. # line 245 "scan.l"
  1094. {
  1095.             bracelevel = 0;
  1096.             continued_action = false;
  1097.             BEGIN(ACTION);
  1098.             return ( '\n' );
  1099.             }
  1100.     YY_BREAK
  1101. case 52:
  1102. # line 252 "scan.l"
  1103. ++linenum; return ( '\n' );
  1104.     YY_BREAK
  1105. case 53:
  1106. # line 254 "scan.l"
  1107. return ( EOF_OP );
  1108.     YY_BREAK
  1109. case 54:
  1110. # line 256 "scan.l"
  1111. {
  1112.             sectnum = 3;
  1113.             BEGIN(SECT3);
  1114.             return ( EOF ); /* to stop the parser */
  1115.             }
  1116.     YY_BREAK
  1117. case 55:
  1118. # line 262 "scan.l"
  1119. {
  1120.             int cclval;
  1121.  
  1122.             (void) strcpy( nmstr, yytext );
  1123.  
  1124.             /* check to see if we've already encountered this ccl */
  1125.             if ( (cclval = ccllookup( nmstr )) )
  1126.                 {
  1127.                 yylval = cclval;
  1128.                 ++cclreuse;
  1129.                 return ( PREVCCL );
  1130.                 }
  1131.             else
  1132.                 {
  1133.                 /* we fudge a bit.  We know that this ccl will
  1134.                  * soon be numbered as lastccl + 1 by cclinit
  1135.                  */
  1136.                 cclinstal( nmstr, lastccl + 1 );
  1137.  
  1138.                 /* push back everything but the leading bracket
  1139.                  * so the ccl can be rescanned
  1140.                  */
  1141.                 PUT_BACK_STRING(nmstr, 1);
  1142.  
  1143.                 BEGIN(FIRSTCCL);
  1144.                 return ( '[' );
  1145.                 }
  1146.             }
  1147.     YY_BREAK
  1148. case 56:
  1149. # line 291 "scan.l"
  1150. {
  1151.             register char *nmdefptr;
  1152.             char *ndlookup();
  1153.  
  1154.             (void) strcpy( nmstr, yytext );
  1155.             nmstr[yyleng - 1] = '\0';  /* chop trailing brace */
  1156.  
  1157.             /* lookup from "nmstr + 1" to chop leading brace */
  1158.             if ( ! (nmdefptr = ndlookup( nmstr + 1 )) )
  1159.                 synerr( "undefined {name}" );
  1160.  
  1161.             else
  1162.                 { /* push back name surrounded by ()'s */
  1163.                 unput(')');
  1164.                 PUT_BACK_STRING(nmdefptr, 0);
  1165.                 unput('(');
  1166.                 }
  1167.             }
  1168.     YY_BREAK
  1169. case 57:
  1170. # line 310 "scan.l"
  1171. return ( yytext[0] );
  1172.     YY_BREAK
  1173. case 58:
  1174. # line 311 "scan.l"
  1175. RETURNCHAR;
  1176.     YY_BREAK
  1177. case 59:
  1178. # line 312 "scan.l"
  1179. ++linenum; return ( '\n' );
  1180.     YY_BREAK
  1181. case 60:
  1182. # line 315 "scan.l"
  1183. return ( ',' );
  1184.     YY_BREAK
  1185. case 61:
  1186. # line 316 "scan.l"
  1187. BEGIN(SECT2); return ( '>' );
  1188.     YY_BREAK
  1189. case 62:
  1190. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1191. yy_c_buf_p = yy_cp = yy_bp + 1;
  1192. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1193. # line 317 "scan.l"
  1194. BEGIN(CARETISBOL); return ( '>' );
  1195.     YY_BREAK
  1196. case 63:
  1197. # line 318 "scan.l"
  1198. RETURNNAME;
  1199.     YY_BREAK
  1200. case 64:
  1201. # line 319 "scan.l"
  1202. synerr( "bad start condition name" );
  1203.     YY_BREAK
  1204. case 65:
  1205. # line 321 "scan.l"
  1206. BEGIN(SECT2); return ( '^' );
  1207.     YY_BREAK
  1208. case 66:
  1209. # line 324 "scan.l"
  1210. RETURNCHAR;
  1211.     YY_BREAK
  1212. case 67:
  1213. # line 325 "scan.l"
  1214. BEGIN(SECT2); return ( '"' );
  1215.     YY_BREAK
  1216. case 68:
  1217. # line 327 "scan.l"
  1218. {
  1219.             synerr( "missing quote" );
  1220.             BEGIN(SECT2);
  1221.             ++linenum;
  1222.             return ( '"' );
  1223.             }
  1224.     YY_BREAK
  1225. case 69:
  1226. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1227. yy_c_buf_p = yy_cp = yy_bp + 1;
  1228. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1229. # line 335 "scan.l"
  1230. BEGIN(CCL); return ( '^' );
  1231.     YY_BREAK
  1232. case 70:
  1233. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1234. yy_c_buf_p = yy_cp = yy_bp + 1;
  1235. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1236. # line 336 "scan.l"
  1237. return ( '^' );
  1238.     YY_BREAK
  1239. case 71:
  1240. # line 337 "scan.l"
  1241. BEGIN(CCL); yylval = '-'; return ( CHAR );
  1242.     YY_BREAK
  1243. case 72:
  1244. # line 338 "scan.l"
  1245. BEGIN(CCL); RETURNCHAR;
  1246.     YY_BREAK
  1247. case 73:
  1248. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1249. yy_c_buf_p = yy_cp = yy_bp + 1;
  1250. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1251. # line 340 "scan.l"
  1252. return ( '-' );
  1253.     YY_BREAK
  1254. case 74:
  1255. # line 341 "scan.l"
  1256. RETURNCHAR;
  1257.     YY_BREAK
  1258. case 75:
  1259. # line 342 "scan.l"
  1260. BEGIN(SECT2); return ( ']' );
  1261.     YY_BREAK
  1262. case 76:
  1263. # line 345 "scan.l"
  1264. {
  1265.             yylval = myctoi( yytext );
  1266.             return ( NUMBER );
  1267.             }
  1268.     YY_BREAK
  1269. case 77:
  1270. # line 350 "scan.l"
  1271. return ( ',' );
  1272.     YY_BREAK
  1273. case 78:
  1274. # line 351 "scan.l"
  1275. BEGIN(SECT2); return ( '}' );
  1276.     YY_BREAK
  1277. case 79:
  1278. # line 353 "scan.l"
  1279. {
  1280.             synerr( "bad character inside {}'s" );
  1281.             BEGIN(SECT2);
  1282.             return ( '}' );
  1283.             }
  1284.     YY_BREAK
  1285. case 80:
  1286. # line 359 "scan.l"
  1287. {
  1288.             synerr( "missing }" );
  1289.             BEGIN(SECT2);
  1290.             ++linenum;
  1291.             return ( '}' );
  1292.             }
  1293.     YY_BREAK
  1294. case 81:
  1295. # line 367 "scan.l"
  1296. synerr( "bad name in {}'s" ); BEGIN(SECT2);
  1297.     YY_BREAK
  1298. case 82:
  1299. # line 368 "scan.l"
  1300. synerr( "missing }" ); ++linenum; BEGIN(SECT2);
  1301.     YY_BREAK
  1302. case 83:
  1303. # line 371 "scan.l"
  1304. bracelevel = 0;
  1305.     YY_BREAK
  1306. case 84:
  1307. # line 372 "scan.l"
  1308. ACTION_ECHO; CHECK_REJECT(yytext);
  1309.     YY_BREAK
  1310. case 85:
  1311. # line 373 "scan.l"
  1312. ACTION_ECHO; CHECK_YYMORE(yytext);
  1313.     YY_BREAK
  1314. case 86:
  1315. # line 374 "scan.l"
  1316. ACTION_ECHO;
  1317.     YY_BREAK
  1318. case 87:
  1319. # line 375 "scan.l"
  1320. {
  1321.             ++linenum;
  1322.             ACTION_ECHO;
  1323.             if ( bracelevel == 0 )
  1324.                 {
  1325.                 fputs( "\tYY_BREAK\n", temp_action_file );
  1326.                 BEGIN(SECT2);
  1327.                 }
  1328.             }
  1329.     YY_BREAK
  1330.     /* REJECT and yymore() are checked for above, in PERCENT_BRACE_ACTION */
  1331. case 88:
  1332. # line 386 "scan.l"
  1333. ACTION_ECHO; ++bracelevel;
  1334.     YY_BREAK
  1335. case 89:
  1336. # line 387 "scan.l"
  1337. ACTION_ECHO; --bracelevel;
  1338.     YY_BREAK
  1339. case 90:
  1340. # line 388 "scan.l"
  1341. ACTION_ECHO;
  1342.     YY_BREAK
  1343. case 91:
  1344. # line 389 "scan.l"
  1345. ACTION_ECHO;
  1346.     YY_BREAK
  1347. case 92:
  1348. # line 390 "scan.l"
  1349. ACTION_ECHO; BEGIN(ACTION_COMMENT);
  1350.     YY_BREAK
  1351. case 93:
  1352. # line 391 "scan.l"
  1353. ACTION_ECHO; /* character constant */
  1354.     YY_BREAK
  1355. case 94:
  1356. # line 392 "scan.l"
  1357. ACTION_ECHO; BEGIN(ACTION_STRING);
  1358.     YY_BREAK
  1359. case 95:
  1360. # line 393 "scan.l"
  1361. {
  1362.             ++linenum;
  1363.             ACTION_ECHO;
  1364.             if ( bracelevel == 0 )
  1365.                 {
  1366.                 fputs( "\tYY_BREAK\n", temp_action_file );
  1367.                 BEGIN(SECT2);
  1368.                 }
  1369.             }
  1370.     YY_BREAK
  1371. case 96:
  1372. # line 402 "scan.l"
  1373. ACTION_ECHO;
  1374.     YY_BREAK
  1375. case 97:
  1376. # line 404 "scan.l"
  1377. ACTION_ECHO; BEGIN(ACTION);
  1378.     YY_BREAK
  1379. case 98:
  1380. # line 405 "scan.l"
  1381. ACTION_ECHO;
  1382.     YY_BREAK
  1383. case 99:
  1384. # line 406 "scan.l"
  1385. ACTION_ECHO;
  1386.     YY_BREAK
  1387. case 100:
  1388. # line 407 "scan.l"
  1389. ++linenum; ACTION_ECHO;
  1390.     YY_BREAK
  1391. case 101:
  1392. # line 408 "scan.l"
  1393. ACTION_ECHO;
  1394.     YY_BREAK
  1395. case 102:
  1396. # line 410 "scan.l"
  1397. ACTION_ECHO; BEGIN(SECT2);
  1398.     YY_BREAK
  1399. case 103:
  1400. # line 411 "scan.l"
  1401. ++linenum; ACTION_ECHO; BEGIN(SECT2);
  1402.     YY_BREAK
  1403. case 104:
  1404. # line 412 "scan.l"
  1405. ACTION_ECHO;
  1406.     YY_BREAK
  1407. case 105:
  1408. # line 413 "scan.l"
  1409. ACTION_ECHO;
  1410.     YY_BREAK
  1411. case 106:
  1412. # line 414 "scan.l"
  1413. ++linenum; ACTION_ECHO;
  1414.     YY_BREAK
  1415. case 107:
  1416. # line 416 "scan.l"
  1417. ACTION_ECHO;
  1418.     YY_BREAK
  1419. case 108:
  1420. # line 417 "scan.l"
  1421. ACTION_ECHO;
  1422.     YY_BREAK
  1423. case 109:
  1424. # line 418 "scan.l"
  1425. ++linenum; ACTION_ECHO;
  1426.     YY_BREAK
  1427. case 110:
  1428. # line 419 "scan.l"
  1429. ACTION_ECHO; BEGIN(ACTION);
  1430.     YY_BREAK
  1431. case 111:
  1432. # line 420 "scan.l"
  1433. ACTION_ECHO;
  1434.     YY_BREAK
  1435. case 112:
  1436. # line 423 "scan.l"
  1437. {
  1438.             yylval = myesc( yytext );
  1439.             return ( CHAR );
  1440.             }
  1441.     YY_BREAK
  1442. case 113:
  1443. # line 428 "scan.l"
  1444. {
  1445.             yylval = myesc( yytext );
  1446.             BEGIN(CCL);
  1447.             return ( CHAR );
  1448.             }
  1449.     YY_BREAK
  1450. case 114:
  1451. # line 435 "scan.l"
  1452. ECHO;
  1453.     YY_BREAK
  1454. case 115:
  1455. # line 436 "scan.l"
  1456. YY_FATAL_ERROR( "flex scanner jammed" );
  1457.     YY_BREAK
  1458. case YY_STATE_EOF(INITIAL):
  1459. case YY_STATE_EOF(SECT2):
  1460. case YY_STATE_EOF(SECT3):
  1461. case YY_STATE_EOF(CODEBLOCK):
  1462. case YY_STATE_EOF(PICKUPDEF):
  1463. case YY_STATE_EOF(SC):
  1464. case YY_STATE_EOF(CARETISBOL):
  1465. case YY_STATE_EOF(NUM):
  1466. case YY_STATE_EOF(QUOTE):
  1467. case YY_STATE_EOF(FIRSTCCL):
  1468. case YY_STATE_EOF(CCL):
  1469. case YY_STATE_EOF(ACTION):
  1470. case YY_STATE_EOF(RECOVER):
  1471. case YY_STATE_EOF(BRACEERROR):
  1472. case YY_STATE_EOF(C_COMMENT):
  1473. case YY_STATE_EOF(C_COMMENT_2):
  1474. case YY_STATE_EOF(ACTION_COMMENT):
  1475. case YY_STATE_EOF(ACTION_STRING):
  1476. case YY_STATE_EOF(PERCENT_BRACE_ACTION):
  1477. case YY_STATE_EOF(USED_LIST):
  1478.     yyterminate();
  1479.  
  1480.         case YY_END_OF_BUFFER:
  1481.             /* undo the effects of YY_DO_BEFORE_ACTION */
  1482.             *yy_cp = yy_hold_char;
  1483.  
  1484.             yytext = yy_bp;
  1485.  
  1486.             switch ( yy_get_next_buffer() )
  1487.             {
  1488.             case EOB_ACT_END_OF_FILE:
  1489.                 {
  1490.                 if ( yywrap() )
  1491.                 {
  1492.                 /* note: because we've taken care in
  1493.                  * yy_get_next_buffer() to have set up yytext,
  1494.                  * we can now set up yy_c_buf_p so that if some
  1495.                  * total hoser (like flex itself) wants
  1496.                  * to call the scanner after we return the
  1497.                  * YY_NULL, it'll still work - another YY_NULL
  1498.                  * will get returned.
  1499.                  */
  1500.                 yy_c_buf_p = yytext;
  1501.  
  1502.                 yy_act = YY_STATE_EOF((yy_start - 1) / 2);
  1503.                 goto do_action;
  1504.                 }
  1505.  
  1506.                 else
  1507.                 YY_NEW_FILE;
  1508.                 }
  1509.                 break;
  1510.  
  1511.             case EOB_ACT_RESTART_SCAN:
  1512.                 yy_c_buf_p = yytext;
  1513.                 yy_hold_char = *yy_c_buf_p;
  1514.                 break;
  1515.  
  1516.             case EOB_ACT_LAST_MATCH:
  1517.                 yy_c_buf_p = &yy_ch_buf[yy_n_chars];
  1518.  
  1519.                 yy_current_state = yy_get_previous_state();
  1520.  
  1521.                 yy_cp = yy_c_buf_p;
  1522.                 yy_bp = yytext;
  1523.                 continue; /* go to "YY_DO_BEFORE_ACTION" */
  1524.             }
  1525.             break;
  1526.  
  1527.         default:
  1528.             printf( "action # %d\n", yy_act );
  1529.             YY_FATAL_ERROR( "fatal flex scanner internal error" );
  1530.         }
  1531.  
  1532.         break; /* exit bogus while loop */
  1533.         }
  1534.     }
  1535.     }
  1536.  
  1537.  
  1538. /* yy_get_next_buffer - try to read in new buffer
  1539.  *
  1540.  * synopsis
  1541.  *     int yy_get_next_buffer();
  1542.  *     
  1543.  * returns a code representing an action
  1544.  *     EOB_ACT_LAST_MATCH - 
  1545.  *     EOB_ACT_RESTART_SCAN - restart the scanner
  1546.  *     EOB_ACT_END_OF_FILE - end of file
  1547.  */
  1548.  
  1549. static int yy_get_next_buffer()
  1550.  
  1551.     {
  1552.     register char *dest = yy_ch_buf;
  1553.     register char *source = yytext - 1; /* copy prev. char, too */
  1554.     register int number_to_move, i;
  1555.     int ret_val;
  1556.     
  1557.     if ( yy_c_buf_p != &yy_ch_buf[yy_n_chars + 1] )
  1558.     {
  1559.     YY_FATAL_ERROR( "NULL in input" );
  1560.     /*NOTREACHED*/
  1561.     }
  1562.  
  1563.     /* try to read more data */
  1564.  
  1565.     /* first move last chars to start of buffer */
  1566.     number_to_move = yy_c_buf_p - yytext;
  1567.  
  1568.     for ( i = 0; i < number_to_move; ++i )
  1569.     *(dest++) = *(source++);
  1570.  
  1571.     if ( yy_eof_has_been_seen )
  1572.     /* don't do the read, it's not guaranteed to return an EOF,
  1573.      * just force an EOF
  1574.      */
  1575.     yy_n_chars = 0;
  1576.  
  1577.     else
  1578.     {
  1579.     int num_to_read = YY_BUF_SIZE - number_to_move - 1;
  1580.  
  1581.     if ( num_to_read > YY_READ_BUF_SIZE )
  1582.         num_to_read = YY_READ_BUF_SIZE;
  1583.  
  1584.     /* read in more data */
  1585.     YY_INPUT( (&yy_ch_buf[number_to_move]), yy_n_chars, num_to_read );
  1586.     }
  1587.  
  1588.     if ( yy_n_chars == 0 )
  1589.     {
  1590.     if ( number_to_move == 1 )
  1591.         ret_val = EOB_ACT_END_OF_FILE;
  1592.     else
  1593.         ret_val = EOB_ACT_LAST_MATCH;
  1594.  
  1595.     yy_eof_has_been_seen = 1;
  1596.     }
  1597.  
  1598.     else
  1599.     ret_val = EOB_ACT_RESTART_SCAN;
  1600.  
  1601.     yy_n_chars += number_to_move;
  1602.     yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1603.     yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1604.  
  1605.     /* yytext begins at the second character in
  1606.      * yy_ch_buf; the first character is the one which
  1607.      * preceded it before reading in the latest buffer;
  1608.      * it needs to be kept around in case it's a
  1609.      * newline, so yy_get_previous_state() will have
  1610.      * with '^' rules active
  1611.      */
  1612.  
  1613.     yytext = &yy_ch_buf[1];
  1614.  
  1615.     return ( ret_val );
  1616.     }
  1617.  
  1618.  
  1619. /* yy_get_previous_state - get the state just before the EOB char was reached
  1620.  *
  1621.  * synopsis
  1622.  *     yy_state_type yy_get_previous_state();
  1623.  */
  1624.  
  1625. static yy_state_type yy_get_previous_state()
  1626.  
  1627.     {
  1628.     register yy_state_type yy_current_state;
  1629.     register char *yy_cp;
  1630.  
  1631.     register char *yy_bp = yytext;
  1632.  
  1633.     yy_current_state = yy_start;
  1634.     if ( yy_bp[-1] == '\n' )
  1635.     ++yy_current_state;
  1636.  
  1637.     for ( yy_cp = yytext; yy_cp < yy_c_buf_p; ++yy_cp )
  1638.     {
  1639.     register char yy_c = yy_ec[*yy_cp];
  1640.     if ( yy_accept[yy_current_state] )
  1641.         {
  1642.         yy_last_accepting_state = yy_current_state;
  1643.         yy_last_accepting_cpos = yy_cp;
  1644.         }
  1645.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1646.         {
  1647.         yy_current_state = yy_def[yy_current_state];
  1648.         if ( yy_current_state >= 317 )
  1649.         yy_c = yy_meta[yy_c];
  1650.         }
  1651.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  1652.     }
  1653.  
  1654.     return ( yy_current_state );
  1655.     }
  1656.  
  1657.  
  1658. #ifdef __STDC__
  1659. static void yyunput( int c, register char *yy_bp )
  1660. #else
  1661. static void yyunput( c, yy_bp )
  1662. int c;
  1663. register char *yy_bp;
  1664. #endif
  1665.  
  1666.     {
  1667.     register char *yy_cp = yy_c_buf_p;
  1668.  
  1669.     *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1670.  
  1671.     if ( yy_cp < yy_ch_buf + 2 )
  1672.     { /* need to shift things up to make room */
  1673.     register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
  1674.     register char *dest = &yy_ch_buf[YY_BUF_SIZE + 2];
  1675.     register char *source = &yy_ch_buf[number_to_move];
  1676.  
  1677.     while ( source > yy_ch_buf )
  1678.         *--dest = *--source;
  1679.  
  1680.     yy_cp += dest - source;
  1681.     yy_bp += dest - source;
  1682.  
  1683.     if ( yy_cp < yy_ch_buf + 2 )
  1684.         YY_FATAL_ERROR( "flex scanner push-back overflow" );
  1685.     }
  1686.  
  1687.     if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
  1688.     yy_cp[-2] = '\n';
  1689.  
  1690.     *--yy_cp = c;
  1691.  
  1692.     YY_DO_BEFORE_ACTION; /* set up yytext again */
  1693.     }
  1694.  
  1695.  
  1696. static int input()
  1697.  
  1698.     {
  1699.     int c;
  1700.     char *yy_cp = yy_c_buf_p;
  1701.  
  1702.     *yy_cp = yy_hold_char;
  1703.  
  1704.     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  1705.     { /* need more input */
  1706.     yytext = yy_c_buf_p;
  1707.     ++yy_c_buf_p;
  1708.  
  1709.     switch ( yy_get_next_buffer() )
  1710.         {
  1711.         /* this code, unfortunately, is somewhat redundant with
  1712.          * that above
  1713.          */
  1714.         case EOB_ACT_END_OF_FILE:
  1715.         {
  1716.         if ( yywrap() )
  1717.             {
  1718.             yy_c_buf_p = yytext;
  1719.             return ( EOF );
  1720.             }
  1721.  
  1722.         yy_ch_buf[0] = '\n';
  1723.         yy_n_chars = 1;
  1724.         yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1725.         yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1726.         yy_eof_has_been_seen = 0;
  1727.         yytext = yy_c_buf_p = &yy_ch_buf[1];
  1728.         yy_hold_char = *yy_c_buf_p;
  1729.  
  1730.         return ( input() );
  1731.         }
  1732.         break;
  1733.  
  1734.         case EOB_ACT_RESTART_SCAN:
  1735.         yy_c_buf_p = yytext;
  1736.         break;
  1737.  
  1738.         case EOB_ACT_LAST_MATCH:
  1739.         YY_FATAL_ERROR( "unexpected last match in input()" );
  1740.         }
  1741.     }
  1742.  
  1743.     c = *yy_c_buf_p;
  1744.     yy_hold_char = *++yy_c_buf_p;
  1745.  
  1746.     return ( c );
  1747.     }
  1748.  
  1749.  
  1750. #ifdef __STDC__
  1751. static void yyrestart( FILE *input_file )
  1752. #else
  1753. static void yyrestart( input_file )
  1754. FILE *input_file;
  1755. #endif
  1756.  
  1757.     {
  1758.     if ( yyin != stdin )
  1759.     fclose( yyin );
  1760.  
  1761.     yyin = input_file;
  1762.     yy_init = 1;
  1763.     }
  1764. # line 436 "scan.l"
  1765.  
  1766.